﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
using BusinessLogicLayer.Global;
using BusinessLogicLayer.Logistica;
using BusinessEntityLayer.Resultado;
using Telerik.WinControls.UI;

namespace Reportes.Logistica
{
    public partial class LogisticaIngresosModificarCompleto : Form
    {

        public LogisticaIngresosModificarCompleto()
        {
            InitializeComponent();
        }


        private static LogisticaIngresosModificarCompleto m_FormDefInstance;
        public static LogisticaIngresosModificarCompleto DefInstance
        {
            get
            {
                if (m_FormDefInstance == null || m_FormDefInstance.IsDisposed)
                    m_FormDefInstance = new LogisticaIngresosModificarCompleto();
                return m_FormDefInstance;
            }
            set
            {
                m_FormDefInstance = value;
            }
        }


        #region "Procedimientos"

        private void CargarEmpresa()
        {
            SrvGlobal VL_SrvGlobal = new SrvGlobal();
            BeanResultado.ResultadoSelect VL_BeanResultado = new BeanResultado.ResultadoSelect();

            try
            {
                VL_BeanResultado = VL_SrvGlobal.Fnc_Listar_Empresas();

                if (VL_BeanResultado.blnExiste == true)
                {
                    cboEmpresa.DataSource = VL_BeanResultado.dtResultado;
                    cboEmpresa.DisplayMember = "EmprDescripcion";
                    cboEmpresa.ValueMember = "EmprCodigo";
                    cboEmpresa.SelectedValue = "01";

                    //CargarAlmacen();
                }
                else
                {
                    MessageBox.Show(VL_BeanResultado.strMensaje);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void CargarAlmacen()
        {
            SrvGlobal VL_SrvGlobal = new SrvGlobal();
            BeanResultado.ResultadoSelect VL_BeanResultado = new BeanResultado.ResultadoSelect();

            try
            {
                VL_BeanResultado = VL_SrvGlobal.Fnc_Listar_AlmacenEmpresa(cboEmpresa.SelectedValue.ToString());

                if (VL_BeanResultado.blnExiste == true)
                {
                    cboAlmacen.DataSource = VL_BeanResultado.dtResultado;
                    cboAlmacen.DisplayMember = "AlmDescripcion";
                    cboAlmacen.ValueMember = "AlmCodigo";
                }
                else
                {
                    MessageBox.Show(VL_BeanResultado.strMensaje, "Mensaje del Sistema");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Mensaje del Sistema");
            }

        }

        private void CargarListaIngresos()
        {
            SrvGlobal VL_SrvGlobal = new SrvGlobal();
            SrvModificarIngresos VL_SrvModificarIngresos = new SrvModificarIngresos();

            BeanResultado.ResultadoSelect VL_BeanResultado = new BeanResultado.ResultadoSelect();

            try
            {
                VL_BeanResultado = VL_SrvModificarIngresos.Fnc_Listar_Ingresos_Completo(VL_EMPRCODIGO, VL_ALMCODIGO, VL_FECHA_INICIO, VL_FECHA_FIN);

                if (VL_BeanResultado.blnExiste == true)
                {
                    dgvLista.DataSource = VL_BeanResultado.dtResultado;
                }
                else
                {
                    MessageBox.Show(VL_BeanResultado.strMensaje, "Mensaje del Sistema");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Mensaje del Sistema");
            }

        }

        private void Actualizar_Precios(String VI_AINGCODIGO, String VI_DINGCODIGO, String VI_EMPRCODIGO, Decimal VI_DINGIMPORTEGRUPAL, Decimal VI_DINGPRECIOGRUPAL, Decimal VI_DINGPRECIOUNI)
        {
            SrvModificarIngresos VL_SrvModificarIngresos = new SrvModificarIngresos();
            BeanResultado.ResultadoTransaccion VL_BeanResultado = new BeanResultado.ResultadoTransaccion();

            VL_BeanResultado = VL_SrvModificarIngresos.Fnc_Actualizar_Precios(VI_AINGCODIGO, VI_DINGCODIGO, VI_EMPRCODIGO, VI_DINGIMPORTEGRUPAL, VI_DINGPRECIOGRUPAL, VI_DINGPRECIOUNI);

            if (VL_BeanResultado.blnResultado == false)
            {
                MessageBox.Show(VL_BeanResultado.strMensaje, "Error");
                return;
            }
            else
            {
                return;
            }

        }

        #endregion

        #region "Declaraciones"

        String VL_EMPRCODIGO = "";
        String VL_ALMCODIGO = "";
        String VL_FECHA_INICIO = "";
        String VL_FECHA_FIN = "";
        String VL_RAZONSOCIAL = "";
        String VL_NRODOCREFERENCIA = "";


        String VL_AINGCODIGO;
        String VL_DESTINO;
        String VL_MONCODIGO;


        String VL_MOVCODIGO;
        String VL_MOVIMIENTO;

        String VL_OCOCODIGO;
        String VL_PDOCODIGOOC;

        String VL_DAINGCODIGO;
        Decimal VL_DINGIMPORTEGRUPAL;
        Decimal VL_DINGPRECIOGRUPAL;

        #endregion


        private void LogisticaIngresosModificarCompleto_Load(object sender, EventArgs e)
        {
            CargarEmpresa();
            CargarAlmacen();
            cboAlmacen.Text = "SOL DE COLLIQUE";
        }

        private void cboEmpresa_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (cboEmpresa.Items.Count > 0)
            {
                CargarAlmacen();
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            VL_EMPRCODIGO = cboEmpresa.SelectedValue.ToString();
            VL_ALMCODIGO = cboAlmacen.SelectedValue.ToString();
            VL_FECHA_INICIO = dtpInicio.Text;
            VL_FECHA_FIN = dtpFin.Text;

            CargarListaIngresos();
        }

        private void dgvLista_CellEndEdit(object sender, GridViewCellEventArgs e)
        {
            if (e.Value != null && Convert.ToDouble(e.Value) > 0)
            {
                dgvLista.CurrentRow.Cells["DIngImporteGrupal"].Value = Convert.ToString(Math.Round((Convert.ToDouble(e.Value)), 5));
                dgvLista.CurrentRow.Cells["DIngPrecioGrupal"].Value = Convert.ToString(Math.Round((Convert.ToDouble(e.Value)) / Convert.ToDouble(dgvLista.CurrentRow.Cells["CantidadGrupoContada"].Value), 5));


                VL_AINGCODIGO = dgvLista.CurrentRow.Cells["AingCodigo"].Value.ToString();
                VL_DAINGCODIGO = dgvLista.CurrentRow.Cells["DIngCodigo"].Value.ToString();
                VL_DINGIMPORTEGRUPAL = decimal.Parse(dgvLista.CurrentRow.Cells["DINGIMPORTEGRUPAL"].Value.ToString());
                VL_DINGPRECIOGRUPAL = decimal.Parse(dgvLista.CurrentRow.Cells["DINGPRECIOGRUPAL"].Value.ToString());


                Actualizar_Precios(VL_AINGCODIGO, VL_DAINGCODIGO, VL_EMPRCODIGO, VL_DINGIMPORTEGRUPAL, VL_DINGPRECIOGRUPAL, 0);


            }

            
        }

    }
}
